﻿//Author: Jacob Weber 
//Date: 04/10/2011

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ExplodingCow.Basilisk.Logic
{
    /// <summary>
    /// Data type represention the physical location of an item, business name, address, city, state, postal code
    /// </summary>
    public class StoreLocation
    {
        
        /// <summary>
        /// The name of the store location
        /// </summary>
        string name;
        /// <summary>
        /// Get or Set the Name of the StoreLocation
        /// </summary>
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        /// <summary>
        /// The address of the store location
        /// </summary>
        string address;
        /// <summary>
        /// Get or Set the Address of the StoreLocation
        /// </summary>
        public string Address
        {
            get { return address; }
            set { address = value; }
        }
        /// <summary>
        /// The city of the store location
        /// </summary>
        string city;
        /// <summary>
        /// Get or Set the City of the StoreLocation
        /// </summary>
        public string City
        {
            get { return city; }
            set { city = value; }
        }
        /// <summary>
        /// The state of the store location
        /// </summary>
        string state;
        /// <summary>
        /// Get or Set the State of the StoreLocation
        /// </summary>
        public string State
        {
            get { return state; }
            set { state = value; }
        }
        /// <summary>
        /// The zip or postal code of the store location
        /// </summary>
        string zip;
        /// <summary>
        /// Get or Set the zip or postal code of the StoreLocation
        /// </summary>
        public string Zip
        {
            get { return zip; }
            set { zip = value; }
        }
        /// <summary>
        /// Get's an StoreLocation with empty string values
        /// </summary>
        public static StoreLocation Empty
        {
            get 
            {
                return new StoreLocation("", "", "", "", "");
            }
        }

        /// <summary>
        /// Constructor for filling out StoreLocation information
        /// </summary>
        /// <param name="locationName">the name of the StoreLocation</param>
        /// <param name="locationAddress">the address of the StoreLocation</param>
        /// <param name="locationCity">the city of the StoreLocation</param>
        /// <param name="locationState">the state of the StoreLocation</param>
        /// <param name="locationZip">the zip or postal code of the StoreLocation</param>
        public StoreLocation(string locationName, string locationAddress, string locationCity, string locationState, string locationZip)
        { 
            name = locationName;
            address = locationAddress;
            city = locationCity;
            state = locationState;
            zip = locationZip;
        }

        /// <summary>
        /// Empty public constructor
        /// </summary>
        public StoreLocation()
        {
            name = "";
            address = "";
            city = "";
            state = "";
            zip = "";
        }
    }
}
